package com.bonc.utilities;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
 * @author donggui@bonc.com.cn
 * @version 2016 2016年6月27日 下午2:13:52
 */
public class FileUtility {
	
	public static List<String> getFileList(String sPath)  {
		//List<String> matchedFiles = new ArrayList<String>();
		List<String> matchedFileNames = new ArrayList<String>();

		//如果sPath不以文件分隔符结尾，自动添加文件分隔符
		if (!sPath.endsWith(File.separator)) {
			sPath = sPath + File.separator;
		}

		File dirFile = new File(sPath);
		//如果dir对应的文件不存在，或者不是一个目录，则退出
		if (!dirFile.exists() || !dirFile.isDirectory()) {
			return null;
		} else {
			File[] files = dirFile.listFiles();
			for (int i = 0; i < files.length; i++) {
				//判断文件是需要的文件
				if (files[i].isFile()) {
					String fileName = files[i].getName();
					matchedFileNames.add(fileName);
					//matchedFiles.add(files[i].getAbsolutePath());
				} 
			}
		}		
		return matchedFileNames;
	}
	
	public static List<String> getRecursiveFileList(String sPath)  {
		//List<String> matchedFiles = new ArrayList<String>();
		List<String> absoluteFilePaths = new ArrayList<String>();

		//如果sPath不以文件分隔符结尾，自动添加文件分隔符
		if (!sPath.endsWith(File.separator)) {
			sPath = sPath + File.separator;
		}

		File dirFile = new File(sPath);
		//如果dir对应的文件不存在，或者不是一个目录，则退出
		if (!dirFile.exists() || !dirFile.isDirectory()) {
			return null;
		} else {
			File[] files = dirFile.listFiles();
			for (int i = 0; i < files.length; i++) {
				String fileName = files[i].getName();
				//判断文件是需要的文件
				if (files[i].isFile()) {					
//					matchedFileNames.add(fileName);
					absoluteFilePaths.add(files[i].getAbsolutePath());
				}else{
					//目录
					absoluteFilePaths.addAll(getRecursiveFileList(sPath+fileName));
				}
			}
		}		
		return absoluteFilePaths;
	}

}
